package adavance.client;

import java.io.*;
import java.net.Socket;

/**
 * @author oldliu
 * @since 1.0
 */
public class FileClient2 {
    public static void main(String[] args) {
        //服务端发的信息 三部分：1文件名长度，2:文件名，3：文件内容
        Socket s=null;
        OutputStream out=null;
        try {
            s = new Socket("192.168.100.85", 8001);
            System.out.println("建立了服务器的连接");
            InputStream in = s.getInputStream();
             out = s.getOutputStream();
            //处理第一部分：
            int len=in.read();//
            System.out.println("文件名长度是："+len);
            //第二部分：
            byte []b=new byte[len];
            in.read(b);
            String name=new String(b);
            System.out.println("文件名是："+name);
            //第三部分：读取内容
            b=new byte[10240];
            FileOutputStream f = new FileOutputStream("e:/temp/"+name);
            while ((len = in.read(b)) > 0) {
                f.write(b, 0, len);
            }
            f.flush();//关闭的时候自动flush
            f.close();
            System.out.println("接收完毕");
            out.write(1);
            out.flush();
        } catch (Exception e) {
            try {
                out.write(0);
            } catch (Exception e1) {
                e1.printStackTrace();
            }
            e.printStackTrace();
        }finally {
            try {
                s.close();
            } catch (Exception e) {

            }
        }

    }
}
